# task 2-1
# 购物车
# 用户入口
# 启动程序后，用户输入工资，打印商品列表
# 用户根据商品编号选购商品
# 判断用户是否有能力购买，能则直接扣款。否则提醒用户余额不足
# 可随时退出，退出时打印已购商品列表，用户余额
# 保存商品信息

import json

# 获取商品信息
with open('products.json', 'r') as f:
    product_list = json.load(f)


# 进入商铺
print('=== Welcome to Taoba ===')

# 读取用户信息
with open('user_shop.json', 'r') as f:
    user_shop = json.load(f)

salary = user_shop.get('salary')
shop_list = user_shop.get('shop_list')
if shop_list:
    print(' 你以购买了以下商品 '.center(60, '-'))
    for item in shop_list:
        print(item)

if salary == 0:
    print('你目前的余额是: %d' % salary)
    while True:
        salary = input('输入充值金额或[q]退出: ')
        if salary.isdigit():
            salary = int(salary)
            break
        elif salary == 'q':
            print('exit...')
            exit()
        else:
            pass

while True:
    print('-'*20)
    print('有以下商品可以购买')
    for key in product_list:
        print(product_list.index(key), key)
    print('-'*20)
    print('你目前的余额是: %d' % salary)
    print('-'*20)
    choice = input('请输入对应的商品编号选择要购买的商品或者输入[q]退出: ')
    if choice.isdigit():
        choice = int(choice)
        # 进入购买
        # 判断所选的商品是否存在
        if choice >= 0 and choice < len(product_list):
            product = product_list[choice]
            if salary >= product[1]:
                shop_list.append(product_list[choice])
                salary -= product_list[choice][1]
                print('-'*20)
                print('已经把 %s 加入了你的购物车' % product_list[choice])
                print('你目前的余额是: %d' % salary)
            else:
                print('你的余额不足,你目前的余额是: %d' % salary)
        else:
            print('输入的商品编号不在商品列表')
    elif choice == 'q':
        # 退出
        if shop_list:
            print('-'*20)
            print('你购买了以下商品')
            print('-'*20)
            for item in shop_list:
                print(item)
        else:
            print('你的购物车空空如也')
        print('-'*20)
        print('你的余额是: %d' % salary)
        # 保存用户购物信息
        with open('user_shop.json', 'w') as f:
            user_shop['salary'] = salary
            user_shop['shop_list'] = shop_list
            f.write(json.dumps(user_shop))
        print('exit ...')
        exit()
    else:
        print('无效的选项')
